﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;


namespace BeniBastanYaratProject
{
    public class SepetIslemleri
    {
        static DBBaglantiDataContext db = new DBBaglantiDataContext();
        public static bool SepeteEkle(int EklenecekUrunID, int EklenecekAdet, Guid EkleyenUserID)
        {
            try
            {
                var AktifSepet = (from x in db.Sepets where x.UserID == EkleyenUserID && x.SepetAktifMi == true select x).FirstOrDefault();
                if (AktifSepet != null)
                {
                    var UrunVarmi = (from x in db.SepetDetaylaris where x.SepetID == AktifSepet.SepetID && x.UrunID == EklenecekUrunID select x).FirstOrDefault();
                    if (UrunVarmi != null)
                    {
                        UrunVarmi.Adet += EklenecekAdet;
                       
                        db.SubmitChanges();  
                    }
                    else
                    {
                        SepetDetaylari sd = new SepetDetaylari();
                        sd.SepetID = AktifSepet.SepetID;
                        sd.UrunID = EklenecekUrunID;
                        sd.Adet = EklenecekAdet;
                        db.SepetDetaylaris.InsertOnSubmit(sd);
                        db.SubmitChanges();
                    }

                }
                else
                {
                    Sepet yeniSepet = new Sepet();
                    yeniSepet.UserID = EkleyenUserID;
                    yeniSepet.SepetAktifMi = true;

                    SepetDetaylari sd = new SepetDetaylari();
                    sd.Sepet = yeniSepet;
                    sd.UrunID = EklenecekUrunID;
                    sd.Adet = EklenecekAdet;
                    db.SepetDetaylaris.InsertOnSubmit(sd);
                    db.SubmitChanges();
                }
                return true;
            }
            catch (Exception)
            {
                return false;
            }
        }
        public static bool SepetenKaldir(int KaldirilacakUrunID, int KaldirilacakAdet, Guid EkleyenUserID)
        {
            try
            {
                var AktifSepet = (from x in db.Sepets where x.UserID == EkleyenUserID && x.SepetAktifMi == true select x).FirstOrDefault();
                if (AktifSepet != null)
                {
                    var KaldirilacakUrun = (from x in db.SepetDetaylaris where x.SepetID == AktifSepet.SepetID && x.UrunID == KaldirilacakUrunID select x).FirstOrDefault();
                    if (KaldirilacakUrun != null)
                    {
                        if (KaldirilacakAdet == KaldirilacakUrun.Adet)
                        {
                            db.SepetDetaylaris.DeleteOnSubmit(KaldirilacakUrun);
                        }
                        else
                        {
                            KaldirilacakUrun.Adet -= KaldirilacakAdet;
                            db.SubmitChanges();
                        }
                    }
                }

                return true;
            }
            catch (Exception)
            {
                return false;
            }
        }
    }
}